1. Field of the Invention
The invention relates to digital telecommunications. More particularly, the invention relates to methods and apparatus for buffering maintenance messages received from the T1 ESF data link channel.
2. State of the Art
The first commercial digital voice communications system was installed in 1962 in Chicago, Ill. The system was called xe2x80x9cT1xe2x80x9d and was based on the time division multiplexing (TDM) of twenty-four telephone calls on two twisted wire pairs. The digital bit rate of the T1 system was 1.544 Mbit/sec (xc2x1200 bps), which was, in the nineteen sixties, about the highest data rate that could be supported by a twisted wire pair for a distance of approximately one mile. The cables carrying the Ti signals were buried underground and were accessible via manholes, which were, at that time in Chicago, spaced approximately one mile (actually, 6000 ft.) apart. Thus, analog amplifiers with digital repeaters were conveniently located at intervals of approximately one mile.
The T1 system is still widely used today and forms a basic building block for higher capacity communication systems including T3 which transports twenty-eight T1 signals. The designation T1 was originally coined to describe a particular type of carrier equipment. Today T1 is often used to refer to a carrier system, a data rate, and various multiplexing and framing conventions. While it is more accurate to use the designation xe2x80x9cDS1xe2x80x9d when referring to the multiplexed digital signal formed at an 8 KHz rate and used to carry twenty-four voice channels by the T1 carrier, the designations DS1 and T1 are often used interchangeably. Today, T1/DS1 systems still have a data rate of 1.544 Mbit/sec and support up to twenty-four voice and/or data DS0 channels. Similarly, the designations DS2 and T2 both refer to a system transporting up to four DS1 signals (96 DS0 channels) and the designations DS3 and T3 both refer to a system transporting up to seven DS2 signals (672 DS0 channels). The timing tolerance for modern T1 equipment has been raised to xc2x150 bps.
The most recent standardized specifications for T1/DS1 systems are contained in several published standards including ANSI T1.102, ANSI T1.231, ANSI T1.403 and ITU-T Recommendation Q.921, the complete disclosures of which are hereby incorporated herein by reference. It is worth noting that the T1 system is substantially the same in North America and Japan but is different in Europe where it is known as xe2x80x9cE1xe2x80x9d, has a data rate of 2.048 Mbit/sec and multiplexes up to thirty voice and/or data channels with signaling, or up to thirty-one voice-and/or data channels without signaling.
The current standard for T1/DS1 systems incorporates many improvements and enhancements over the original T1 system. The basic T1 system is based on a frame of 193 bits, i.e. twenty-four 8-bit channels (the payload) and one framing bit (F). According to today""s standards, the 192 bit payload need not be xe2x80x9cchannelizedxe2x80x9d into 24 DS0 channels. In addition, superframe and extended superframe formats have been defined. The superframe (SF) format is composed of twelve consecutive T1 frames, i.e. approximately 1.5 milliseconds of a T1 signal. In the SF format, the twelve framing bits F are divided into two groups, six terminal framing bits Ft and six signalling framing bits Fs. The Ft bits are used to identify frame boundaries and the Fs bits are used to identify superframe boundaries. When the frames are DS0 channelized, the Fs bits are also used to identify signalling frames. The extended superframe (ESF) format is composed of twenty-four consecutive T1 frames, i.e., approximately 3 milliseconds of a T1 signal. In the ESF format, the twenty-four F bits are divided into three groups. Six F bits are used to provide a 2 kbps framing pattern sequence (FPS) which-is used to identify the frame and ESF boundaries. When the frames are DS0 channelized, the FPS is to identify signalling frames. Another six of the F bits are used to provide a 2 kbps CRC (cyclic redundancy check error checking) channel utilizing a CRC-6 code. The remaining twelve F bits are used to provide a 4 kbps data link (DL) channel. The DL channel is sometimes referred to as the xe2x80x9cFDL channelxe2x80x9d or xe2x80x9cFDL linkxe2x80x9d where DL stands for data link and F stands for facility or facilities.
In addition to modern framing conventions, the present T1 specification also includes provisions for different xe2x80x9cline codesxe2x80x9d, sometimes referred to as xe2x80x9ctransmission codesxe2x80x9d. It will be appreciated that the T1 signal is a plesiochronous (tightly controlled asynchronous) signal and, unlike a synchronous signal, is still subject to wander, jitter, and slips. Line codes are encoding conventions which are designed to facilitate bandwidth limitations, clock recovery, and error detection. One popular line code is known generally as alternate mark inversion (AMI or bipolar line code). AMI utilizes a ternary signal (positive, negative, and null) to convey binary digits (zero and one). Successive binary ones are represented by signal elements of alternate polarity and of equal magnitude. Binary zeros are represented by signal elements having zero amplitude. Under the AMI line code, a non-zero signal element which follows a non-zero signal element of the same polarity is called a xe2x80x9cbipolar violationxe2x80x9d. AMI line code spectral density is one-half the bit rate and it has no DC component.
The T1 signal is also conditioned by pulse density requirements, i.e. the minimum number of xe2x80x9conesxe2x80x9d (marks or pulses) which must be present in given number of binary digits or xe2x80x9ctime slotsxe2x80x9d. Pulse density requirements prevent jitter build-up due to a lack of pulses to retain clocking and a lost signal from being to mistaken for a long string of zero bits. Thus, digital codes containing zero strings greater than fifteen zeros are restricted from being transmitted. An enhancement to the basic AMI line code which helps meet pulse density requirements and places no restrictions on the transmitted data is known as xe2x80x9cbipolar with 8-zero substitutionxe2x80x9d (B8ZS). The B8ZS line code provides that blocks of eight consecutive zeros are replaced with a unique eight bit code, i.e. 000VB0VB, where B represents a non-zero signal element conforming to the bipolar rule and V represents a bipolar violation. Another system for meeting pulse density requirements is known as xe2x80x9czero-byte time slot interchangexe2x80x9d (ZBTSI). According to ZBTSI, eight consecutive zeros are replaced by an address chain that is decoded by the receiving terminal. As mentioned above, these transmission codes are based on the nature of the T1 carrier and not on the DS1 multiplexing scheme. Today, a DS1 transmission path may be provided on media other than a T1 carrier. A DS1 transmission path which is synchronous (e.g. via SONET) and does not utilize line codes with data restrictions or pulse density requirements is said to have xe2x80x9cclear channel capabilityxe2x80x9d.
The present standards for SF and ESF formats provide means for sending maintenance signals and maintenance messages. Exemplary maintenance signals include Remote Alarm Indication (RAI, or xe2x80x9cyellow alarmxe2x80x9d), Alarm Indication Signal (AIS), and, more recently, trouble sectionalization signals (RAI-CI and AIS-CI) which identify whether trouble exists at the customer installation (CI) or the network interface (NI). Other maintenance signals include loopbacks and loopback control signals. In the SF format maintenance signals are transmitted in-band (in one or more DS1 channels or in a T1 frame). In the ESF format, most maintenance signals are transmitted in the DL channel; although some signals, such as remote loop up/down, may be transmitted alternatively in-band.
The RAI signal is transmitted in the outgoing direction when DS1 terminal equipment located in either the network or the customer installation has effectively lost the incoming signal. The detailed requirements for sending an RAI signal are contained in previously incorporated ANSI T1.231. An RAI is transmitted to the NI in several forms. In the SF format, for the duration of channel time-slot shall be a zero. In the ESF format, for the duration of the alarm condition, but for at least one second, a repeating 16-bit pattern of eight xe2x80x9conesxe2x80x9d followed by eight xe2x80x9czerosxe2x80x9d is transmitted continuously on the ESF DL channel, but may be interrupted for a period of 100 milliseconds per interruption for other xe2x80x9cbit patterned messagesxe2x80x9d. Bit patterned messages (which include RAI) are preemptive messages which will overwrite other signals in the DL channel such as LAPD messages described below.
The AIS (Alarm Indication Signal) maintenance signal is transmitted in place of the normal T1 signal under certain specified conditions such as when an equipment experiences a loss of input signal (LOS) or is being placed in a maintenance state such as a loopback. The AIS signal is designed to be readily recognized by all equipment regardless of the framing or line codes employed. The AIS signal defined in previously incorporated in ANSI T1.231 is a signal having a pulse density of 99.9% for a periodxe2x89xa7T, where 3 millisecondsxe2x89xa6Txe2x89xa675 ms. The minimum time of 3 milliseconds was chosen so that an AIS which was corrupted by a bit error ratio (BER) of up to 1xc3x9710xe2x88x923 could be differentiated from a normal (framed) signal having a payload of all ones.
The recently defined trouble sectionalization signals (RAI-CI and AIS-CI) identify whether trouble exists at the customer installation (CI) or the network interface (NI). More particularly, the RAI-CI signal is a repetitive pattern with a period of 1.08 seconds. It is formed by sequentially interleaving 0.99 seconds of the RAI (ESF) signal with 90 milliseconds of a xe2x80x9cbit patterned messagexe2x80x9d, i.e. eight xe2x80x9conesxe2x80x9d followed by one xe2x80x9czeroxe2x80x9d, followed by five xe2x80x9conesxe2x80x9d, followed by two xe2x80x9czerosxe2x80x9d. The RAI-CI signal may only be used in the ESF format. The AIS-CI signal is a repetitive.pattern with a period of 1.26 seconds. It is formed by sequentially interleaving 1.11 seconds of an unframed all ones pattern (the AIS signal) with 0.15 seconds of a modified all ones pattern. The AIS-CI signal is defined as a pattern which recurs at 3.86 bit intervals in the DS1 signal. In other words, each 386th bit of an AIS signal is overwritten by another repetitive pattern, i.e. eight xe2x80x9conesxe2x80x9d, followed by two xe2x80x9czerosxe2x80x9d, followed by five xe2x80x9conesxe2x80x9d, followed by one xe2x80x9czeroxe2x80x9d. The AIS-CI pattern therefore repeats once every 6176 bits and differs from an ordinary AIS pattern in that bit numbers 3088, 3474, and 5790 are xe2x80x9czerosxe2x80x9d rather than xe2x80x9conesxe2x80x9d. The AIS-CI signal may be used in any of the T1 frame formats and meets the 99.9% all-ones criteria for AIS for equipment which cannot distinguish AIS-CI from AIS.
Unlike maintenance signals which are bit-patterned repeated signals, maintenance messages utilize the LAPD (link access procedure on the D channel) protocol. Maintenance messages include requests received from the network and responses transmitted to the network which are.sent in packets or frames in the DL portion of the ESF signal. The original purpose of maintenance messages was to allow the network to retrieve parameters regarding system performance, to reset counters, accumulators and registers used in computing performance parameters and to activate and deactivate xe2x80x9cpayload loopbackxe2x80x9d (PLB). The original maintenance messages (Performance Report Messages or PRM) were sent at regular intervals (every second) from each end of the T1 link, and each had the same message length of 15 octets (one byte flag+three bytes of address and control+eight bytes of data+two bytes CRC-16+one byte flag). The flag byte is defined as xe2x80x9c01111110xe2x80x9d. According to the LAPD, this bit pattern is protected by a system known as xe2x80x9czero stuffingxe2x80x9d. In order to prevent the flag pattern from inadvertently appearing in the bit stream between opening and closing flags, a transmitter will insert a zero after every sequence of five consecutive ones between flags. According to LAPD, receivers will remove the stuffed zeros. It should be noted that the maintenance messages retrieved from the data link need to be kept in order, but do not need to be processed in real time as their value is in the history they provide of the performance of the T1 line.
According to the prior art, HDLC (high level data link control) equipment utilizes FIFO buffers to buffer received maintenance messages before they are read by a host controller. The HDLC equipment monitors the DL channel, strips opening and closing flags from messages, removes stuffed zeros, and generally reconstitutes the original message. The xe2x80x9cextractedxe2x80x9d message is placed in the FIFO where it resides until the host controller fetches it. This system operates well when the frequency of message reception is not faster than the latency of the host controller. In applications where messages arrive more frequently, it has been known to use parallel FIFOs which are written to and read from alternately.
Recently, the T1 standards have adopted a wide variety of maintenance messages having variable lengths (up to 79 message octets), and have also provided additional performance report messages that may be generated at intermediate points along a T1 path for the purpose of sectionalizing performance degradation. These new maintenance messages are generally referred to as xe2x80x9cnetwork performance report messagesxe2x80x9d or NPRMs and they are distinguishable from periodic performance report messages described above through the use of different addresses. The NPRMs are also sent at regular (e.g., 1 second) intervals, and are optionally generated by intermediate equipment on a DS1 circuit.
The introduction of these additional maintenance messages has complicated the buffering-of messages for the host controller. In particular, under the present scheme, several messages of different sizes may be received xe2x80x9cback-to-backxe2x80x9d, i.e. two consecutive messages separated by a single flag. Under the traditional FIFO buffering schemes, only one message may be kept in the buffer and that message must be read before another message may be placed in the FIFO. One solution to the problem of buffering back-to-back messages has been to provide multiple FIFOs. However, this solution does not make efficient use of the FIFOs since large FIFOs must be used for small messages. Another proposed solution to the problem of buffering back-to-back messages of variable length has been to use a linked list containing an index of several messages in the FIFO so that they can be properly read. However, this solution requires additional overhead and complicated software for managing the buffer pool and for reading messages from the FIFO.
It is therefore an object of the invention to provide methods and apparatus for handling maintenance messages in extended superframe T1 telephone circuits which makes efficient use of FIFO buffers.
It is also an object of the invention to provide methods and apparatus for handling maintenance messages in extended superframe T1 telephone circuits which is relatively easy to implement.
It is another object of the invention to provide methods and apparatus for handling maintenance messages in extended superframe T1 telephone circuits which makes efficient use of a single FIFO buffer.
In accord with these objects which will be discussed in detail below, an apparatus of the present invention includes a FIFO, a byte counter, and a message length register. According to a method of the invention, when messages are placed in the FIFO by HDLC equipment, the byte counter counts the message length and places the message length in the message length register at the end of each message. A host controller must read the message length register in the time interval following complete receipt of a first message before complete receipt of a second message, but need not read the contents of the FIFO until it is about to overflow. According to a presently preferred embodiment of the apparatus, a second register is provided for indicating the current depth of the FIFO. The second register is coupled to the byte counter and maintains a cumulative total of all the bytes placed in the FIFO. According to a presently preferred method, the second register sends an interrupt to the host controller when the FIFO reaches a desired threshold is (e.g. more than 50% full) and/or is close to overflow. When the host controller receives an interrupt from the second register, at least some of the contents of the FIFO are read and the second register is decremented. Absent an interrupt from the second register, the host controller reads the contents of the. FIFO (and decrements the second register) whenever it is convenient for the host controller.
According to one embodiment of the invention, when messages are placed in the FIFO, the HDLC equipment places data in a status register indicating that a new message has been received and including information about the integrity of the message. The status register interrupts the host controller and the host controller then reads the first register along with the message status. According to an alternate embodiment, the host controller periodically reads (i.e. polls) the first register and resets the register each time it is read. According to yet another embodiment, a message length and status FIFO is used in place of the message length register and status register and permits multiple messages to be stored in the FIFO, with information concerning each message (e.g., status and length) to be stored in a separate FIFO, thereby permitting even more latency for a host controller.
Additional objects and advantages of the invention will become apparent to those skilled in the art upon reference to the detailed description taken in conjunction with the provided figures.